package com.example.emb.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.emb.entity.Classdtable;
import com.example.emb.entity.Classtable;
import com.example.emb.entity.Yeartable;
import com.example.emb.mapper.ClassdtableMapper;
import com.example.emb.mapper.ClasstableMapper;
import com.example.emb.mapper.YeartableMapper;
import com.example.emb.service.classService;
import com.example.emb.service.exception.NoClassFindException;
import com.example.emb.until.JsonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;
import java.util.jar.JarEntry;

@RestController
@Api(tags = "关于教师查看所有的班级的api位置")
@RequestMapping("/zjgsEmb/TeacherClass")
public class TeacherClassController {
    @Autowired
    YeartableMapper yeartableMapper;
    @Autowired
    ClasstableMapper classtableMapper;
    @Autowired
    ClassdtableMapper classdtableMapper;
    @Autowired
    com.example.emb.service.classService classService;

    @ApiOperation("获得所有的嵌入式班级ARM班级 获得所有的arm班级")
    @GetMapping("/getAllARMClass")
    private JsonResult<List<Classtable>> getARMClass(){
        int classType=0;
        List<Classtable> list=new ArrayList<>();
        QueryWrapper<Classtable>queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("classType",classType);
        list=classtableMapper.selectList(queryWrapper);
        return new JsonResult<List<Classtable>>(200,list);
    }

    @ApiOperation("获得所有的物联网班级IOT班级 获得所有的IOT班级")
    @GetMapping("/getAllIOTClass")
    private JsonResult<List<Classtable>> getIOTClass(){
        int classType=1;
        List<Classtable> list=new ArrayList<>();
        QueryWrapper<Classtable>queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("classType",classType);
        list=classtableMapper.selectList(queryWrapper);
        return new JsonResult<List<Classtable>>(200,list);
    }

    //////////////////////////////////////////////////////////////////////////
    @ApiOperation("通过路由中的班级id获得班级的完整信息")
    @GetMapping("/getClassById")
    private JsonResult<Classtable> getOneClassById(int classId){
        Classtable classtable=classtableMapper.selectById(classId);
        if (classtable!=null)
            return new JsonResult<Classtable>(200,classtable);
        else
            throw new NoClassFindException("未找到班级信息");
    }

    @ApiOperation("班级信息管理用于已有班级的信息更新 ,这里一定不能忘了上传之前的,班级的id，同时classType也要有0/1/2")
    @PostMapping("upDateClassInfo")
    private JsonResult UpdateClassInfo(Classtable classtable){
        classtableMapper.updateById(classtable);
        return new JsonResult(200);
    }
    @ApiOperation("班级信息管理用于创建新的班级按钮，不需要上传classId,同时classType也要有0/1/2")
    @PostMapping("initClassInfo")
    private JsonResult InitClassInfo(Classtable classtable){
        classtableMapper.insert(classtable);
        return new JsonResult(200);
    }

    @ApiOperation("班级信息管理用于删除的班级按钮，页面修改一下,确认跳出弹窗确认删除后才使用这个接口")
    @GetMapping("DeleteClassInfo")
    private JsonResult DeleteClassInfo(int classId){
        classService.deleteClass( classId);
        return new JsonResult(200);
    }
//////////////////////////////////////////////////////////////////////////////////////////


}
